/*
  学习目标：泛型函数的调用
 
  👍 1. 推荐简写，代码简洁
  2. 完整写法
    1.1 类型推断不准确的时候，使用完整写法
    1.2 不知道类型是什么，可以使用fn<any>
*/

function fn<T>(aa: T): T {
  return aa;
}

type FormDataType = {
  title: string;
  content: string;
  images?: string[];
  type: number;
};

const res = {
  // typeof formData 没有办法推出是FormDataType， 因为images是可选属性
  title: '123',
  content: '123',
  type: 0,
};

// 1. 完整的泛型函数写法
let result = fn<number>(11);
let result2 = fn<string>('123');

let _formData2 = fn<any>(res);
console.log('_formData2.images  ----->  ', _formData2.images);

// 2. 简写
let result3 = fn(123);
